import pandas as pd  # 用于读取类别信息的CSV文件

# ---------------------------
# 超参数设置
# ---------------------------
BATCH_SIZE = 64              # 批量大小，每次输入网络的样本数量
EPOCHS = 300                 # 训练轮数，完整遍历数据集的次数
LR = 1e-4                    # 学习率，控制参数更新的步长

EPSILON = 1e-6               # 数值稳定性小量，防止除零等错误
IMAGE_SIZE = (448, 448)      # 输入图像尺寸，YOLOv1要求输入448x448的图像

# ---------------------------
# 模型参数设置
# ---------------------------
S = 7                        # 图像划分的网格数（S×S），每个网格负责检测中心落在该网格的目标
B = 2                        # 每个网格预测的边界框数量
C = 20                       # 目标类别数（PASCAL VOC数据集有20类）

# 读取类别名称文件（包含20个类别的名称）
classes = pd.read_csv ("./datasets/classes.csv")

# 测试配置输出（当直接运行该文件时）
if __name__ == '__main__' :
    print (f"batch-size : {BATCH_SIZE}\n"          # 打印批量大小
           f"epochs : {EPOCHS}\n"                 # 打印训练轮数
           f"learning rate : {LR}\n"              # 打印学习率
           f"img size : {IMAGE_SIZE}\n"            # 打印输入图像尺寸
           f"grid cells : {S}\n"                  # 打印网格数量
           f"bboxes per grid cell : {B}\n"        # 打印每个网格的边界框数
           f"class number : {C}\n"                # 打印类别数量
           f"类别列表: {classes.iloc[:, 0]}")       # 打印具体类别名称